//=======================================Copyright(c)===========================================
// 								  深圳易马达科技有限公司
//---------------------------------------文件信息----------------------------------------------
//文件名   	: DTCheck.h
//创建人  	: Handry
//创建日期	: 
//描述	    : 故障诊断检测头文件
//-----------------------------------------------当前版本修订----------------------------------
//修改人   	:
//版本	    :
//修改日期	:
//描述	    :
//=============================================================================================
#ifndef __DTCHECK_H
#define	__DTCHECK_H

//=============================================================================================
//包含头文件
//=============================================================================================
#include "BSPTypeDef.h"

//=============================================================================================
//宏参数设定
//=============================================================================================
#define		DT_CHECK_CFG_LEN		DT_ID_FIN		//故障检测配置数组长度

#ifdef      LFP_AK_15000MAH_16S
#define		DT_CHECK_VDIFF_VOLT		3400	        //判断压差过大的最大电压值，磷酸铁锂
#elif       defined(SY_PB_32000MAH_14S) || defined(SY_PB_32000MAH_16S) || defined(SY_PB_32000MAH_17S)
#define		DT_CHECK_VDIFF_VOLT		(MAX_CHG_VOLT - 50)	        //判断压差过大的最大电压值，三元电芯
#elif       defined(LFP_TB_20000MAH_20S)
#define		DT_CHECK_VDIFF_VOLT		3500	        //判断压差过大的最大电压值，磷酸铁锂
#elif       defined(LFP_HL_25000MAH_16S) || defined(LFP_PH_20000MAH_20S) || defined(LFP_GF_25000MAH_16S)
#define		DT_CHECK_VDIFF_VOLT		3500	        //判断压差过大的最大电压值，磷酸铁锂
#else
#define		DT_CHECK_VDIFF_VOLT		(MAX_CHG_VOLT - 50)	        //判断压差过大的最大电压值，三元电芯
#endif

//定义故障位1
#define 	DEV_FAULT1_AFE 			0x0001
#define 	DEV_FAULT1_FUEL 		0x0002
#define 	DEV_FAULT1_RTC 			0x0004
#define 	DEV_FAULT1_FLASH 		0x0008
#define 	DEV_FAULT1_DCHG_MOS 	0x0010
#define 	DEV_FAULT1_CHG_MOS 		0x0020
#define 	DEV_FAULT1_PRECHG 		0x0040
#define 	DEV_FAULT1_RTCVAL 		0x0080
#define 	DEV_FAULT1_CONFIG 		0x0100
#define	 	DEV_FAULT1_FUSE 		0x0200
#define 	DEV_FAULT1_ACC 			0x0400
#define 	DEV_FAULT1_OTHER 		0x8000

//定义故障位2
#define 	DEV_FAULT2_CHG_NTC 		0x0001
#define 	DEV_FAULT2_DCHG_NTC 	0x0002
#define 	DEV_FAULT2_FUEL_NTC 	0x0004
#define 	DEV_FAULT2_CONN_NTC 	0x0008
#define 	DEV_FAULT2_B1_NTC 		0x0010
#define 	DEV_FAULT2_B2_NTC 		0x0020
#define	 	DEV_FAULT2_TVS_NTC		0x0040
#define	 	DEV_FAULT2_FUSE_NTC		0x0080
#define	 	DEV_LOW_CURR_CIRCUIT_FAULT		0x4000	//漏电流检测电路故障
#define	 	DEV_EX_MODULE_SHORT		0x8000	//外置模块短路

//定义故障位3
#define 	OPT_FAULT1_OV 			0x0001
#define 	OPT_FAULT1_UV1 			0x0002
#define 	OPT_FAULT1_UV2 			0x0004
#define 	OPT_FAULT1_CHG_OC 		0x0008
#define 	OPT_FAULT1_DCHG_OC1 	0x0010
#define 	OPT_FAULT1_DCHG_OC2 	0x0020
#define 	OPT_FAULT1_CHG_OT 		0x0040
#define 	OPT_FAULT1_DCHG_OT 		0x0080
#define 	OPT_FAULT1_CHG_UT 		0x0100
#define 	OPT_FAULT1_DCHG_UT 		0x0200
#define 	OPT_FAULT1_CHG_MOSOT 	0x0400
#define 	OPT_FAULT1_DCHG_MOSOT 	0x0800
#define 	OPT_FAULT1_CONN_OT 		0x1000
#define 	OPT_FAULT1_PRE_OTEMP 	0x2000  //B11使用，预启动电阻温度过高 21.01.26
#define	 	OPT_FAULT1_PRE_OTIME 	0x4000	//预启动失败超时
#define 	OPT_FAULT1_PRE_OLOAD 	0x8000	//预启动失败外部重载/短路

//定义故障位4
#define 	OPT_FAULT2_DCHG_SHORT 	0x0001	//放电短路保护
#define 	OPT_FAULT2_DCHG_OC_LK 	0x0002	//放电过流保护锁定
#define 	OPT_FAULT2_CHG_OC_LK 	0x0004	//充电过流保护锁定
#define 	OPT_FAULT2_AFE_ALERT 	0x0008
#define 	OPT_FAULT2_AFE_XREADY 	0x0010
#define 	OPT_FAULT2_SLP_OC 		0x0020	//睡眠模式过流
#define 	OPT_FAULT2_FUSE_OT 		0x0040	//保险丝温度过高
#define 	OPT_FAULT2_TVS_OT 		0x0080	//TVS温度过高
#define     OPT_FAULT2_ILLEGAL_CHG  0x0700  //非法充电,3个bit：
#define     OPT_FAULT2_ILLEGAL_CHG_ALL     0x0300  //非法充电充入所有标志
#define     OPT_FAULT2_ILLEGAL_CHG_1000MAH 0x0200  //非法充电充入1000mAh
#define     OPT_FAULT2_ILLEGAL_CHG_500MAH  0x0100  //非法充电充入500mAh
#define     OPT_FAULT2_ILLEGAL_CHG_250MAH  0x0000  //非法充电充入250mAh
#define     OPT_FAULT2_ILLEGAL_VOLT_RISE   0x0400  //电压异常升高
#define     OPT_FAULT2_TEMP_RISE_FAST      0x0800  //温度失控
#define     OPT_FAULT2_CP_FAIL             0x1000  //O2 CP 失败
#define     OPT_FAULT2_DCHG_OC3            0x2000  //三级过流保护
#define     OPT_FAULT2_OVER_LOW_CURR       0x4000  //漏电流过流保护

//定义告警位1
#define 	OPT_WARN1_OV 			0x0001
#define 	OPT_WARN1_UV 			0x0002
#define 	OPT_WARN1_CHG_OC 		0x0004
#define 	OPT_WARN1_DCHG_OC 		0x0008
#define 	OPT_WARN1_CHG_OT 		0x0010
#define 	OPT_WARN1_DCHG_OT		0x0020
#define 	OPT_WARN1_CHG_UT 		0x0040
#define 	OPT_WARN1_DCHG_UT 		0x0080
#define 	OPT_WARN1_DIFF_V_LV1 	0x0100
#define 	OPT_WARN1_DIFF_V_LV2 	0x0200
#define 	OPT_WARN1_DIFF_V_LV3 	0x0400
#define	 	OPT_WARN1_DIFF_V_LV4 	0x0800
#define 	OPT_WARN1_DIFF_T_LV1 	0x1000
#define 	OPT_WARN1_DIFF_T_LV2 	0x2000
#define 	OPT_WARN1_DIFF_T_LV3 	0x4000
#define 	OPT_WARN1_DIFF_T_LV4 	0x8000

//=============================================================================================
//定义数据类型
//=============================================================================================
//DT_ID  故障诊断ID 外部显示使用
typedef enum
{
	//设备故障1
	DT_ID_AFE_FAULT = 0,		//AFE故障 0
	DT_ID_FUEL_FAULT,			//电量计故障 1
	DT_ID_RTC_FAULT,			//时钟芯片故障 2
	DT_ID_STOR_FAULT,			//存储芯片故障 3
	DT_ID_DIS_MOS_FAULT,		//放电MOS失效故障 4
	DT_ID_CHG_MOS_FAULT,		//充电MOS失效故障 5
	DT_ID_PRE_CHG_FAULT,		//预启动电路故障 6
	DT_ID_RTC_NOCALIB_FAULT,	//时钟未校准故障 7
	DT_ID_NOPARA_FAULT,			//参数未校准故障 8
	DT_ID_FUSE_FAULT,			//保险丝失效故障 9
	DT_ID_ACCELE_FAULT,			//加速度计故障 10
	DT_ID_OTHERS_FAULT,			//其他设备故障 11

	//设备故障2
	DT_ID_CHG_NTC_FAULT,		//充电MOS温度传感器失效故障 12
	DT_ID_DIS_NTC_FAULT,		//放电MOS温度传感器失效故障 13
	DT_ID_FULE_NTC_FAULT,		//电量计温度传感器失效故障 14
	DT_ID_CONN_NTC_FAULT,		//连接器温度传感器失效故障 15
	DT_ID_BAT_NTC1_FAULT,		//电池温度传感器1失效故障 16
	DT_ID_BAT_NTC2_FAULT,		//电池温度传感器2失效故障 17
	DT_ID_TVS_NTC_FAULT,		//TVS温度传感器失效故障 18
 	DT_ID_FUSE_NTC_FAULT,		//保险丝温度传感器失效故障 19
	DT_ID_EX_MODULE_FAULT,		//外置模块短路故障 20
    
    
	//运行故障1
	DT_ID_VH,	           	 	//电池过压 21
	DT_ID_VL_LV1,				//电池欠压1级 22
	DT_ID_VL_LV2,				//电池欠压2级 23
	DT_ID_USOC_LV1,				//SOC过低1级 24
	DT_ID_CHG_CURH_LV1,        	//充电过流1级 25
	DT_ID_CHG_CURH_LV2,        	//充电过流2级 26
	DT_ID_CHG_CURH_LV3,        	//充电过流3级 27
	DT_ID_DIS_CURH_LV1,    		//放电过流1级 28
	DT_ID_DIS_CURH_LV2,    		//放电过流2级 29
	DT_ID_CHG_TH,				//电池充电过温 30
	DT_ID_DIS_TH,		   	 	//电池放电过温 31
	DT_ID_CHG_TL,				//电池充电低温 32
	DT_ID_DIS_TL,		    	//电池放电低温 33
	DT_ID_CHG_MOS_TH,			//充电MOS温度过高 34
	DT_ID_DIS_MOS_TH,			//放电MOS温度过高 35
	DT_ID_CONN_TH,				//连接器温度过高 36
	DT_ID_PRE_CHG_OTEMP,		//预启动温度过高 37   B11使用，预启动电阻温度过高 21.01.26
	DT_ID_PRE_CHG_OT,			//预启动失败超时 38
	DT_ID_PRE_CHG_OC,			//预启动失败外部重载/短路 39

	//运行故障2
	DT_ID_DIS_SC,				//放电短路 40
	DT_ID_DIS_CURRH_LOCK,		//放电过流保护锁定 41
	DT_ID_CHG_CURRH_LOCK,		//充电过流保护锁定 42
	DT_ID_AFE_ALERT,			//AFE ALERT警告故障 43
	DT_ID_AFE_XREADY,			//AFE XREADY故障 44
	DT_ID_SLEEP_CURRH,			//睡眠模式过流故障 45
	DT_ID_TVS_TH,				//TVS管温度过高 46
	DT_ID_FUSE_TH,				//保险丝温度过高 47
	DT_ID_CP_FAIL,				//AFE CP失败 48
    
	//运行告警1
	DT_ID_CHG_VH_WARM,			//过充告警 49
	DT_ID_DIS_VL_WARM,			//过放告警 50
	DT_ID_CHG_CURRH_WARM,		//充电过流告警 51
	DT_ID_DIS_CURRL_WARM,		//放电过流告警 52
	DT_ID_CHG_TH_WARM,			//充电高温告警 53
	DT_ID_DIS_TH_WARM,			//放电高温告警 54
	DT_ID_CHG_TL_WARM,			//充电低温告警 55
	DT_ID_DIS_TL_WARM,			//放电低温告警 56
	DT_ID_UN_BALANCE_LV1,		//最高电芯电压大于4.05V且最大压差大于50mV 57
	DT_ID_UN_BALANCE_LV2,		//最高电芯电压大于4.05V且最大压差大于100mV 58
	DT_ID_UN_BALANCE_LV3,		//最高电芯电压大于4.05V且最大压差大于200mV 59
	DT_ID_UN_BALANCE_LV4,		//最高电芯电压大于4.05V且最大压差大于300mV 60
	DT_ID_TEMP_DIFF_LV1,		//电池温度传感器温差大于6度 61
	DT_ID_TEMP_DIFF_LV2,		//电池温度传感器温差大于9度 62
	DT_ID_TEMP_DIFF_LV3,		//电池温度传感器温差大于15度 63
	DT_ID_TEMP_DIFF_LV4,		//电池温度传感器温差大于30度 64

	//运行告警2
	//预留

	DT_ID_FIN                   //DT个数 65
}e_DT_ID;

//DT使能状态
typedef enum
{
	DT_Disable = 0,                 //不使能
	DT_Enable = 1					//使能
}e_DTEnable;

 //DT状态
typedef enum
{
	DT_N    = 0,                    //正常 normal
	DT_F    = 1,                    //故障 fault
	DT_NtoF = 2,					//内部转移中间态，从正常状态到故障状态
	DT_FtoN = 3,					//内部转移中间态，从故障状态到正常状态
	DT_END
}e_DTState;

//DT等级
typedef enum
{
//	DT_LV0 = 0,                    	//0级故障，不检测
	DT_LV1 = 0,                    	//1级故障，基本为提示类
	DT_LV2 = 1,						//2级故障，基本为告警类
	DT_LV3 = 2,				    	//3级故障，基本为降功率类
	DT_LV4 = 3,				    	//4级故障，基本为关机类
	DT_LV_MAX
}e_DTLevel;

//DT检测类型
typedef enum
{
	DT_Over = 0,                    	//检测值大于成熟值，为故障；检测值小于恢复值，为正常
	DT_Under = 1,                    	//检测值小于成熟值，为故障；检测值大于恢复值，为正常
	DT_Bool = 2,						//检测值为1，为故障；检测值为0，为正常

	DT_Type_MAX
}e_DTCheckType;

 //故障检测数据结构
typedef struct
{
	u8 	id;								//故障ID
	e_DTEnable 	enable;					//使能
	e_DTLevel dtlevel;					//故障等级
	s16 *matth;							//成熟阈值
	s16 *resth;							//恢复阈值
	u16	*mattime;						//成熟时间，单位S
	u16 *restime;						//恢复时间，单位S
	e_DTCheckType checktype;			//检测类型
	s16 (*getfunc)(void);				//获取检测值的函数
}t_DTCheck;

//=============================================================================================
//声明变量
//=============================================================================================
extern const t_DTCheck gDTConfig[DT_CHECK_CFG_LEN];
extern u8 gChgOVFlag;							//充电高压标志
extern u8 gDchgUV1Flag;						    //放电低压1级标志
extern u8 gDchgUV2Flag;						    //放电低压2级标志
extern u8 gOCLock;								//bit0 : 充电过流锁定；bit1 : 放电过流锁定

//=============================================================================================
//声明接口函数
//=============================================================================================
//=============================================================================================
//函数名称	:  void DTCheckInit(void)
//输入参数	:  void
//输出参数	:  void
//函数功能	:  DTC 故障检测初始化函数
//注意事项	:
//=============================================================================================
void DTCheckInit(void);

//=============================================================================================
//函数名称	:  void DTCheckTask(void)
//输入参数	:  void
//输出参数	:  void
//函数功能	:  DTC 故障检测任务函数
//注意事项	:
//=============================================================================================
void DTCheckTask(void);

//=============================================================================================
//函数名称	:  void DTCheckRefreshFault(void)
//输入参数	:  void
//输出参数	:  void
//函数功能	:  DTC 更新故障标志位
//注意事项	:
//=============================================================================================
void DTCheckRefreshFault(void);

//=============================================================================================
//函数名称	:  void DTCheckChargeOV(void)
//输入参数	:  void
//输出参数	:
//函数功能	:  检测充电高压判断
//注意事项	:
//=============================================================================================
void DTCheckChargeOV(void);

//=============================================================================================
//函数名称	:  void DTCheckChargeUV1(void)
//输入参数	:  void
//输出参数	:
//函数功能	:  检测放电低压1级判断
//注意事项	:
//=============================================================================================
void DTCheckChargeUV1(void);

//=============================================================================================
//函数名称	:  void DTCheckChargeUV2(void)
//输入参数	:  void
//输出参数	:
//函数功能	:  检测放电低压2级判断
//注意事项	:
//=============================================================================================
void DTCheckChargeUV2(void);

//=============================================================================================
//函数名称	:  void DTCheckOCLockStatusClr(uint8_t ctrl)
//输入参数	:  ctrl：//bit0 : 充电过流锁定；bit1 : 放电过流锁定
//输出参数	:  void
//函数功能	:  充放过流保护锁定清除
//注意事项	:
//=============================================================================================
void DTCheckOCLockStatusClr(uint8_t ctrl);

//=============================================================================================
//函数名称	:  void DTCheckOCLockStatusUpdate(void)
//输入参数	:  void
//输出参数	:  void
//函数功能	:  充放过流保护锁定标志更新任务
//注意事项	:
//=============================================================================================
void DTCheckOCLockStatusUpdate(void);

//=============================================================================================
//函数名称	:  void DTCheckIllegalChgUpdate(void)
//输入参数	:  void
//输出参数	:  void
//函数功能	:  非法充电、电压异常上升标志更新任务
//注意事项	:
//=============================================================================================
void DTCheckIllegalChgUpdate(void);

//=============================================================================================
//函数名称	:  void DTCheckAFEProtectFlag(void)
//输入参数	:  void
//输出参数	:  void
//函数功能	:  AFE设备保护标志更新任务
//注意事项	:
//=============================================================================================
void DTCheckAFEProtectFlag(void);

//=============================================================================================
//函数名称	:  u8 DTCheckFindIndexByDTID(u8 id)
//输入参数	:  id:DT故障id
//输出参数	:  DT故障id对应的数组索引,0xff:无效
//函数功能	:  查找DT故障id对应的数组索引
//注意事项	:
//=============================================================================================
u8 DTCheckFindIndexByDTID(u8 id);

//=============================================================================================
//函数名称	:  s16 DTCheckGetMaxCellVolt(void)
//输入参数	:  void
//输出参数	:  单体电压最大值
//函数功能	:  获取单体电压最大值
//注意事项	:
//=============================================================================================
s16 DTCheckGetMaxCellVolt(void);

//=============================================================================================
//函数名称	:  s16 DTCheckGetMinCellVolt(void)
//输入参数	:  void
//输出参数	:  单体电压最小值
//函数功能	:  获取单体电压最小值
//注意事项	:
//=============================================================================================
s16 DTCheckGetMinCellVolt(void);

//=============================================================================================
//函数名称	:  s16 DTCheckGetCellVoltDiff(void)
//输入参数	:  void
//输出参数	:  单体电压差异值
//函数功能	:  获取单体电压差异值
//注意事项	:
//=============================================================================================
s16 DTCheckGetCellVoltDiff(void);

//=============================================================================================
//函数名称	:  s16 DTCheckGetMaxCellTemp(void)
//输入参数	:  void
//输出参数	:  单体温度最大值
//函数功能	:  获取单体温度最大值
//注意事项	:
//=============================================================================================
s16 DTCheckGetMaxCellTemp(void);

//=============================================================================================
//函数名称	:  s16 DTCheckGetMinCellTemp(void)
//输入参数	:  void
//输出参数	:  单体温度最小值
//函数功能	:  获取单体温度最小值
//注意事项	:
//=============================================================================================
s16 DTCheckGetMinCellTemp(void);

//=============================================================================================
//函数名称	:  s16 DTCheckGetCellTempDiff(void)
//输入参数	:  void
//输出参数	:  单体温度差异值
//函数功能	:  获取单体温度差异值
//注意事项	:
//=============================================================================================
s16 DTCheckGetCellTempDiff(void);

//=============================================================================================
//函数名称	:  s16 DTCheckGetPCBTemp(void)
//输入参数	:  void
//输出参数	:  PCB温度
//函数功能	:  获取PCB温度
//注意事项	:
//=============================================================================================
s16 DTCheckGetPCBTemp(void);

//=============================================================================================
//函数名称	:  s16 DTCheckGetConnTemp(void)
//输入参数	:  void
//输出参数	:  连接器温度
//函数功能	:  获取连接器温度
//注意事项	:
//=============================================================================================
s16 DTCheckGetConnTemp(void);

//=============================================================================================
//函数名称	:  s16 DTCheckGetPreDsgTemp(void)
//输入参数	:  void
//输出参数	:  预放电电阻温度
//函数功能	:  获取预放电电阻温度
//注意事项	:
//=============================================================================================
s16 DTCheckGetPreDsgTemp(void);

//=============================================================================================
//函数名称	:  s16 DTCheckGetTVSTemp(void)
//输入参数	:  void
//输出参数	:  TVS温度
//函数功能	:  获取TVS温度
//注意事项	:
//=============================================================================================
s16 DTCheckGetTVSTemp(void);

//=============================================================================================
//函数名称	:  s16 DTCheckGetCurrent(void)
//输入参数	:  void
//输出参数	:
//函数功能	:  获取电流大小
//注意事项	:
//=============================================================================================
s16 DTCheckGetCurrent(void);

//=============================================================================================
//函数名称	:  s16 DTCheckGetSOC(void)
//输入参数	:  void
//输出参数	:
//函数功能	:  获取SOC大小
//注意事项	:
//=============================================================================================
s16 DTCheckGetSOC(void);

//=============================================================================================
//函数名称	:  s16 DTCheckGetAFEFault(void)
//输入参数	:  void
//输出参数	:  AFE故障判断条件
//函数功能	:
//注意事项	:
//=============================================================================================
s16 DTCheckGetAFEFault(void);

//=============================================================================================
//函数名称	:  s16 DTCheckGetFuelFault(void)
//输入参数	:  电量计AFE故障判断条件
//函数功能	:
//注意事项	:
//=============================================================================================
s16 DTCheckGetFuelFault(void);

//=============================================================================================
//函数名称	:  s16 DTCheckGetFuelFault(void)
//输入参数	:  电量计AFE故障判断条件
//函数功能	:
//注意事项	:
//=============================================================================================
s16 DTCheckGetStorageFault(void);

//=============================================================================================
//函数名称	:  s16 DTCheckGetDchgMosFault(void)
//输入参数	:  放电MOS管失效故障判断条件
//函数功能	:
//注意事项	:
//=============================================================================================
s16 DTCheckGetDchgMosFault(void);

//=============================================================================================
//函数名称	:  s16 DTCheckGetChgMosFault(void)
//输入参数	:  充电MOS管失效故障判断条件
//函数功能	:
//注意事项	:
//=============================================================================================
s16 DTCheckGetChgMosFault(void);

//=============================================================================================
//函数名称	:  s16 DTCheckGetPreMosFault(void)
//输入参数	:  预放电MOS管失效故障判断条件
//函数功能	:
//注意事项	:
//=============================================================================================
s16 DTCheckGetPreMosFault(void);

//=============================================================================================
//函数名称	:  s16 DTCheckGetParaCfgFault(void)
//输入参数	:  配置参数错误故障判断条件
//函数功能	:
//注意事项	:
//=============================================================================================
s16 DTCheckGetParaCfgFault(void);

//=============================================================================================
//函数名称	:  s16 DTCheckGetFuseFault(void)
//输入参数	:  保险丝熔断故障判断条件
//函数功能	:
//注意事项	:
//=============================================================================================
s16 DTCheckGetFuseFault(void);

//=============================================================================================
//函数名称	:  s16 DTCheckGetAccFault(void)
//输入参数	:  加速度计故障判断条件
//函数功能	:
//注意事项	:
//=============================================================================================
s16 DTCheckGetAccFault(void);

//=============================================================================================
//函数名称	:  s16 DTCheckGetPreOverTime(void)
//输入参数	:  预启动失败超时故障判断条件
//函数功能	:
//注意事项	:
//=============================================================================================
s16 DTCheckGetPreOverTime(void);

//=============================================================================================
//函数名称	:  s16 DTCheckGetPreOverLoad(void)
//输入参数	:  预启动短路故障判断条件
//函数功能	:
//注意事项	:
//=============================================================================================
s16 DTCheckGetPreOverLoad(void);

//=============================================================================================
//函数名称	:  s16 DTCheckGetMosNTCFault(void)
//输入参数	:  MOS管NTC故障判断条件
//函数功能	:
//注意事项	:
//=============================================================================================
s16 DTCheckGetMosNTCFault(void);

//=============================================================================================
//函数名称	:  s16 DTCheckGetFuelNTCFault(void)
//输入参数	:  电量计NTC故障判断条件
//函数功能	:
//注意事项	:
//=============================================================================================
s16 DTCheckGetFuelNTCFault(void);

//=============================================================================================
//函数名称	:  s16 DTCheckGetConnNTCFault(void)
//输入参数	:  连接器NTC故障判断条件
//函数功能	:
//注意事项	:
//=============================================================================================
s16 DTCheckGetConnNTCFault(void);

//=============================================================================================
//函数名称	:  s16 DTCheckGetTVSNTCFault(void)
//输入参数	:  TVS管NTC故障判断条件
//函数功能	:
//注意事项	:
//=============================================================================================
s16 DTCheckGetTVSNTCFault(void);

//=============================================================================================
//函数名称	:  s16 DTCheckGetBat1NTCFault(void)
//输入参数	:  电池1 NTC故障判断条件
//函数功能	:
//注意事项	:
//=============================================================================================
s16 DTCheckGetBat1NTCFault(void);

//=============================================================================================
//函数名称	:  s16 DTCheckGetBat2NTCFault(void)
//输入参数	:  电池2 NTC故障判断条件
//函数功能	:
//注意事项	:
//=============================================================================================
s16 DTCheckGetBat2NTCFault(void);

//=============================================================================================
//函数名称	:  s16 DTCheckGetExModuleFault(void)
//输入参数	:  外置模块短路故障判断条件
//函数功能	:
//注意事项	:
//=============================================================================================
s16 DTCheckGetExModuleFault(void);

//=============================================================================================
//函数名称	:  s16 DTCheckGetRTCFault(void)
//输入参数	:  void
//输出参数	:  RTC故障判断条件
//函数功能	:
//注意事项	:
//=============================================================================================
s16 DTCheckGetRTCFault(void);

//=============================================================================================
//函数名称	:  s16 DTCheckGetRTCValFault(void)
//输入参数	:  void
//输出参数	:  RTC未校准判断条件
//函数功能	:
//注意事项	:
//=============================================================================================
s16 DTCheckGetRTCValFault(void);

//=============================================================================================
//函数名称	:  s16 DTCheckGetDchgOCLock(void)
//输入参数	:  放电过流锁定故障判断条件
//函数功能	:
//注意事项	:
//=============================================================================================
s16 DTCheckGetDchgOCLock(void);

//=============================================================================================
//函数名称	:  s16 DTCheckGetChgOCLock(void)
//输入参数	:  充电过流锁定故障判断条件
//函数功能	:
//注意事项	:
//=============================================================================================
s16 DTCheckGetChgOCLock(void);

//=============================================================================================
//函数名称	:  s16 DTCheckGetAFEOverAlertFault(void)
//输入参数	:  AFE发生过流过压等故障判断条件
//函数功能	:
//注意事项	:
//=============================================================================================
s16 DTCheckGetAFEOverAlertFault(void);

//=============================================================================================
//函数名称	:  s16 DTCheckGetAFEXRdyFault(void)
//输入参数	:  AFE发生内部XReady故障判断条件
//函数功能	:
//注意事项	:
//=============================================================================================
s16 DTCheckGetAFEXRdyFault(void);

//=============================================================================================
//函数名称	:  s16 DTCheckGetSleepOCFault(void)
//输入参数	:  睡眠电流过流故障判断条件
//函数功能	:
//注意事项	:
//=============================================================================================
s16 DTCheckGetSleepOCFault(void);

#endif

/*****************************************end of DTCheck.h*****************************************/
